// 错误处理中间件
const errorHandler = (err, req, res, next) => {
  console.error(err.stack);
  
  // 根据错误类型返回不同的响应
  if (err.type === 'entity.parse.failed') {
    return res.status(400).json({
      error: '请求体格式错误',
      message: '请求体无法解析为有效的JSON格式'
    });
  }
  
  // 默认错误响应
  const isDevelopment = process.env.NODE_ENV === 'development';
  res.status(err.status || 500).json({
    error: err.name || '服务器内部错误',
    message: isDevelopment ? err.message : '服务器出现了问题',
    ...(isDevelopment && { stack: err.stack })
  });
};

// 404 处理中间件
const notFoundHandler = (req, res, next) => {
  res.status(404).json({
    error: '请求的资源未找到',
    message: '您请求的资源不存在',
    path: req.originalUrl
  });
};

module.exports = {
  errorHandler,
  notFoundHandler
};